package world.xuewei.service;

import world.xuewei.model.entity.Classify;
import world.xuewei.model.entity.Commodity;
import world.xuewei.model.entity.MerchantInfo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * 商户信息表(MerchantInfo)表服务接口
 *
 * @author makejava
 * @since 2024-11-15 19:27:49
 */
public interface MerchantInfoService {

    // 随机获取商户信息（分类和商品）
    MerchantInfo  getRandomMerchant();

    // 获取商户信息
    MerchantInfo queryByUserId(Long userId);

    // 获取商品分类
    List<Classify> getMerchantClassifies(Long merchantId);

    // 获取商品列表
    List<Commodity> getMerchantCommodities(Long merchantId);

    // 获取商户上架的所有商品
    List<Commodity> getPutAway(Long merchantId);

    //获取商户下架的所有商品
    List<Commodity> getMerchantCommoditiesByStatus(long merchantId);
    /**
     * 通过ID查询单条数据
     *
     * @return 实例对象
     */
    MerchantInfo queryById(Long userid);

    /**
     * 分页查询
     *
     * @param merchantInfo 筛选条件
     * @param pageRequest  分页对象
     * @return 查询结果
     */
    Page<MerchantInfo> queryByPage(MerchantInfo merchantInfo, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param merchantInfo 实例对象
     * @return 实例对象
     */
    MerchantInfo insert(MerchantInfo merchantInfo);

    /**
     * 修改数据
     *
     * @param merchantInfo 实例对象
     * @return 实例对象
     */
 Object update(MerchantInfo merchantInfo);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

}
